package admin

import (
	"gitee.com/gopher2011/gin"
	"gitee.com/gopher2011/mall/app/dao"
	"gitee.com/gopher2011/mall/app/service"
	"net/http"
	"strconv"
)

// 限时购活动管理
var SmsFlashPromotion = &smsFlashPromotionApi{}

type smsFlashPromotionApi struct{}

// 添加活动 /create Post 参数: dao.SmsFlashPromotion
func (it *smsFlashPromotionApi) Create(r *gin.Context) {
	// 将请求参数解析到 ptr上
	var ptr dao.SmsFlashPromotion
	err := r.Parse(&ptr)
	if err != nil {
		r.JSON(http.StatusBadRequest, gin.H{"msg": err.Error()})
		r.Abort()
	}
	res, err := service.SmsFlashPromotion.Create(ptr)
	if err != nil {
		r.JSON(http.StatusBadRequest, gin.H{"msg": "添加活动失败!"})
		r.Abort()
	} else {
		r.JSON(http.StatusOK, gin.H{"msg": "添加活动成功!", "data": res})
	}
}

// 编辑活动信息 /update/:id Post 参数:id,dao.SmsFlashPromotion
func (it *smsFlashPromotionApi) Update(r *gin.Context) {
	id, _ := strconv.Atoi(r.Param("id"))
	// 将请求参数解析到 ptr上
	var ptr dao.SmsFlashPromotion
	err := r.Parse(&ptr)
	if err != nil {
		r.JSON(http.StatusBadRequest, gin.H{"msg": err.Error()})
		r.Abort()
	}
	res, err := service.SmsFlashPromotion.Update(int64(id), ptr)
	if err != nil {
		r.JSON(http.StatusBadRequest, gin.H{"msg": "编辑活动信息失败!"})
		r.Abort()
	} else {
		r.JSON(http.StatusOK, gin.H{"msg": "编辑活动信息成功!", "data": res})
	}
}

//删除活动信息 /delete/:id Post 参数:id
func (it *smsFlashPromotionApi) Delete(r *gin.Context) {
	id, _ := strconv.Atoi(r.Param("id"))
	res, err := service.SmsFlashPromotion.Delete(int64(id))
	if err != nil {
		r.JSON(http.StatusBadRequest, gin.H{"msg": "删除活动信息失败!"})
		r.Abort()
	} else {
		r.JSON(http.StatusOK, gin.H{"msg": "删除活动信息成功!", "data": res})
	}
}

// 修改上下线状态 /update/status/:id Post 参数:id,status
func (it *smsFlashPromotionApi) UpdateStatus(r *gin.Context) {
	id, _ := strconv.Atoi(r.Param("id"))
	status, _ := strconv.Atoi(r.Param("status"))
	res, err := service.SmsFlashPromotion.UpdateStatus(int64(id), int32(status))
	if err != nil {
		r.JSON(http.StatusBadRequest, gin.H{"msg": "修改上下线状态失败!"})
		r.Abort()
	} else {
		r.JSON(http.StatusOK, gin.H{"msg": "修改上下线状态成功!", "data": res})
	}
}

// 获取活动详情 /:id Get 参数:id
func (it *smsFlashPromotionApi) GetItem(r *gin.Context) {
	str := r.Param("id")
	id, _ := strconv.Atoi(str)
	res, err := service.SmsFlashPromotion.GetItem(int64(id))
	if err != nil {
		r.JSON(http.StatusBadRequest, gin.H{"msg": "获取活动详情失败!"})
		r.Abort()
	} else {
		r.JSON(http.StatusOK, gin.H{"msg": "获取活动详情成功!", "data": res})
	}
}

//根据活动名称分页查询 /list Get 参数:dao.SmsFlashPromotionList
func (it *smsFlashPromotionApi) List(r *gin.Context) {
	// 将请求参数解析到 ptr上
	var ptr dao.SmsFlashPromotionList
	err := r.Parse(&ptr)
	if err != nil {
		r.JSON(http.StatusBadRequest, gin.H{"msg": err.Error()})
		r.Abort()
	}
	res, err := service.SmsFlashPromotion.List(ptr)
	if err != nil {
		r.JSON(http.StatusBadRequest, gin.H{"msg": "根据活动名称分页查询失败!"})
		r.Abort()
	} else {
		r.JSON(http.StatusOK, gin.H{"msg": "根据活动名称分页查询成功!", "data": res})
	}
}
